package com.ruoyi.employee.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 人员变动记录对象 hr_person_change
 * 
 * @author hango
 * @date 2025-10-19
 */
public class HrPersonChange extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** 员工 */
    @Excel(name = "员工")
    private String empId;

    /** 变动类型 */
    @Excel(name = "变动类型")
    private String changeType;

    /** 生效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectDate;

    /** 记录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date changeTime;

    /** 操作人 */
    @Excel(name = "操作人")
    private String opBy;

    /** 来源 */
    @Excel(name = "来源")
    private Long source;

    /** 操作内容 */
    @Excel(name = "操作内容")
    private String reason;

    /** 原部门 */
    private String fromDeptId;

    /** 现部门 */
    private String toDeptId;

    /** 原岗位 */
    private String fromPostId;

    /** 现岗位 */
    private String toPostId;

    /** 原职级 */
    private String fromTitleId;

    /** 现职级 */
    private String toTitleId;

    /** 原办公地点 */
    private String fromLocationId;

    /** 现办公地点 */
    private String toLocationId;

    /** 原标准工资 */
    private BigDecimal fromSalary;

    /** 现标准工资 */
    private BigDecimal toSalary;

    /** 字段变化清单 */
    private String fieldsChanged;

    /** 已拼接的操作内容 */
    private String opContent;

    /** 变更前快照 */
    private String snapshotBefore;

    /** 变更后快照 */
    private String snapshotAfter;

    /** 佐证材料 */
    private String attachUrls;

    /** 记录状态 */
    private String status;

    /** 删除标志（0存在 2删除） */
    private String delFlag;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setEmpId(String empId) 
    {
        this.empId = empId;
    }

    public String getEmpId() 
    {
        return empId;
    }

    public void setChangeType(String changeType) 
    {
        this.changeType = changeType;
    }

    public String getChangeType() 
    {
        return changeType;
    }

    public void setEffectDate(Date effectDate) 
    {
        this.effectDate = effectDate;
    }

    public Date getEffectDate() 
    {
        return effectDate;
    }

    public void setChangeTime(Date changeTime) 
    {
        this.changeTime = changeTime;
    }

    public Date getChangeTime() 
    {
        return changeTime;
    }

    public void setOpBy(String opBy) 
    {
        this.opBy = opBy;
    }

    public String getOpBy() 
    {
        return opBy;
    }

    public void setSource(Long source) 
    {
        this.source = source;
    }

    public Long getSource() 
    {
        return source;
    }

    public void setReason(String reason) 
    {
        this.reason = reason;
    }

    public String getReason() 
    {
        return reason;
    }

    public void setFromDeptId(String fromDeptId) 
    {
        this.fromDeptId = fromDeptId;
    }

    public String getFromDeptId() 
    {
        return fromDeptId;
    }

    public void setToDeptId(String toDeptId) 
    {
        this.toDeptId = toDeptId;
    }

    public String getToDeptId() 
    {
        return toDeptId;
    }

    public void setFromPostId(String fromPostId) 
    {
        this.fromPostId = fromPostId;
    }

    public String getFromPostId() 
    {
        return fromPostId;
    }

    public void setToPostId(String toPostId) 
    {
        this.toPostId = toPostId;
    }

    public String getToPostId() 
    {
        return toPostId;
    }

    public void setFromTitleId(String fromTitleId) 
    {
        this.fromTitleId = fromTitleId;
    }

    public String getFromTitleId() 
    {
        return fromTitleId;
    }

    public void setToTitleId(String toTitleId) 
    {
        this.toTitleId = toTitleId;
    }

    public String getToTitleId() 
    {
        return toTitleId;
    }

    public void setFromLocationId(String fromLocationId) 
    {
        this.fromLocationId = fromLocationId;
    }

    public String getFromLocationId() 
    {
        return fromLocationId;
    }

    public void setToLocationId(String toLocationId) 
    {
        this.toLocationId = toLocationId;
    }

    public String getToLocationId() 
    {
        return toLocationId;
    }

    public void setFromSalary(BigDecimal fromSalary) 
    {
        this.fromSalary = fromSalary;
    }

    public BigDecimal getFromSalary() 
    {
        return fromSalary;
    }

    public void setToSalary(BigDecimal toSalary) 
    {
        this.toSalary = toSalary;
    }

    public BigDecimal getToSalary() 
    {
        return toSalary;
    }

    public void setFieldsChanged(String fieldsChanged) 
    {
        this.fieldsChanged = fieldsChanged;
    }

    public String getFieldsChanged() 
    {
        return fieldsChanged;
    }

    public void setOpContent(String opContent) 
    {
        this.opContent = opContent;
    }

    public String getOpContent() 
    {
        return opContent;
    }

    public void setSnapshotBefore(String snapshotBefore) 
    {
        this.snapshotBefore = snapshotBefore;
    }

    public String getSnapshotBefore() 
    {
        return snapshotBefore;
    }

    public void setSnapshotAfter(String snapshotAfter) 
    {
        this.snapshotAfter = snapshotAfter;
    }

    public String getSnapshotAfter() 
    {
        return snapshotAfter;
    }

    public void setAttachUrls(String attachUrls) 
    {
        this.attachUrls = attachUrls;
    }

    public String getAttachUrls() 
    {
        return attachUrls;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("empId", getEmpId())
            .append("changeType", getChangeType())
            .append("effectDate", getEffectDate())
            .append("changeTime", getChangeTime())
            .append("opBy", getOpBy())
            .append("source", getSource())
            .append("reason", getReason())
            .append("fromDeptId", getFromDeptId())
            .append("toDeptId", getToDeptId())
            .append("fromPostId", getFromPostId())
            .append("toPostId", getToPostId())
            .append("fromTitleId", getFromTitleId())
            .append("toTitleId", getToTitleId())
            .append("fromLocationId", getFromLocationId())
            .append("toLocationId", getToLocationId())
            .append("fromSalary", getFromSalary())
            .append("toSalary", getToSalary())
            .append("fieldsChanged", getFieldsChanged())
            .append("opContent", getOpContent())
            .append("snapshotBefore", getSnapshotBefore())
            .append("snapshotAfter", getSnapshotAfter())
            .append("attachUrls", getAttachUrls())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
